package com.kuang.tree;

/**
 * @author kjx
 */

/*  给定一个二叉树，判断它是否是高度平衡二叉树 */
    /*  高度 平衡，不是高度平衡，这个得意思就是左右子树深度相差不能超过一    */


public class IsBalanced {


    //直接复用上一次写的求深度的即可
    public boolean isBalanced(TreeNode root) {
        if(root == null){
            return true;
        }
        int flag = maxDepth(root.left) - maxDepth(root.right);
        return Math.abs(flag) <= 1 && isBalanced(root.left) && isBalanced(root.right);
    }


    //返回最大深度
    public int maxDepth(TreeNode root) {
        return root == null ? 0 : Math.max(maxDepth(root.left),maxDepth(root.right)) + 1;
    }
}
